package com.moli.iov.notify.communication.template;

import java.util.Optional;

/**
 *
 *  Communication Template builder.
 *
 * @author OAK
 * @version 3.0
 * @since 2019/10/24 11:17 AM.
 *
 */
@FunctionalInterface
public interface Builder {

    /**
     * Compile currently <font size="5" color="#008000"><b>&quot;&lt;T&gt;&quot;</b></font> variables and output.
     * @param variables Variables collection.
     * @param <T> Generic type.
     * @return Optional currently Combined template.
     */
    <T> Optional<String> compile(T variables);

}
